import Request from '@/plugins/luch-request/index.js'
import { BASE_URL } from "@/utils/common.js"


const http = new Request({
	baseURL: BASE_URL,
	timeout: 100000,
	header: {
		'ContentType': 'application/json'
	},
});

// 请求拦截
http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	let jwttoken = uni.getStorageSync('jwttoken');

	if (jwttoken) {
		config.header.jwttoken = jwttoken
	}
	return config
}, config => { // 可使用async await 做异步操作
	return Promise.reject(config)
})

// 响应拦截
http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
	let code = response.data.code //状态码
	
	switch (code) {
		case 1005:
			{ //被登录状态
				uni.redirectTo({//重定向回注册页
					url: '/pages/login/login'
				});
				break;
			}
	
		case 1006:
			{ //刷新token
				uni.setStorageSync('jwttoken',response.data.data.jwttoken)
	
				// 重置配置
				let config = response.config
				config.header.jwttoken = response.data.data.jwttoken

				return http.request(config) //重新发起请求
			}
	
	
		default:
			{ //正常
				// console.log(1000)
			}
	
	}
	
	return response
}, (response) => { /*  对响应错误做点什么 （statusCode !== 200）*/
	if(response.errMsg === "request:fail timeout"){
		console.log("请求超时")
		return Promise.reject(response)
	}
	console.log("网络异常，请重新刷新页面")
	return Promise.reject(response)
})

export default http
